Comparison of multi-paradigm programming languages
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Programming languages can be grouped by the number and types of paradigms supported.
Contents
• See also
• Notes
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Paradigm summaries
A concise reference for the programming paradigms listed in this article.
• Concurrent programming – have language constructs for concurrency, these may involve multi-threading, support for distributed computing, message passing, shared resources (including shared memory), or futures
• Actor programming – concurrent computation with actors that make local decisions in response to the environment (capable of selfish or competitive behaviour)
• Constraint programming – relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm)
• Dataflow programming – forced recalculation of formulas when data values change (e.g. spreadsheets)
• Declarative programming – describes what computation should perform, without specifying detailed state changes cf. imperative programming (functional and logic programming are major subgroups of declarative programming)
• Distributed programming – have support for multiple autonomous computers that communicate via computer networks
• Functional programming – uses evaluation of mathematical functions and avoids state and mutable data
• Generic programming – uses algorithms written in terms of to-be-specified-later types that are then instantiated as needed for specific types provided as parameters
• Imperative programming – explicit statements that change a program state
• Logic programming – uses explicit mathematical logic for programming
• Metaprogramming – writing programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at compile time that would otherwise be done at runtime
• Template metaprogramming – metaprogramming methods in which a compiler uses templates to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled
• Reflective programming – metaprogramming methods in which a program modifies or extends itself
• Object-oriented programming – uses data structures consisting of data fields and methods together with their interactions (objects) to design programs
• Class-based – object-oriented programming in which inheritance is achieved by defining classes of objects, versus the objects themselves
• Prototype-based – object-oriented programming that avoids classes and implements inheritance via cloning of instances
• Pipeline programming – a simple syntax change to add syntax to nest function calls to language originally designed with none
• Rule-based programming – a network of rules of thumb that comprise a knowledge base and can be used for expert systems and problem deduction & resolution
• Visual programming – manipulating program elements graphically rather than by specifying them textually (e.g. Simulink); also termed diagrammatic programmingcite-ref-1[1]
Language overview
| Language | Paradigm count | Concurrent | Constraints | Dataflow | Declarative | Distributed | Functional | Metaprogramming | Generic | Imperative | Logic | Reflection | Object-oriented | Pipelines | Visual | Rule-based | Other |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ada [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] | 5 | Yes [ a 1 ] | — | — | — | Yes | — | — | Yes | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| ALF | 2 | — | — | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
| AmigaE | 2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| APL | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | — | — | — | — | Array (multi-dimensional) |
| BETA | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| C++ | 7 (15) | Yes [ 7 ] [ 8 ] [ 9 ] | Library [ 10 ] | Library [ 11 ] [ 12 ] | Library [ 13 ] [ 14 ] | Library [ 15 ] [ 16 ] | Yes | Yes [ 17 ] | Yes [ a 3 ] | Yes | Library [ 18 ] [ 19 ] | Library [ 20 ] | Yes [ a 2 ] | Library [ 21 ] | — | Library [ 22 ] | Array (multi-dimensional; using STL ) |
| C# | 6 (7) | Yes | — | Library [ a 4 ] | — | — | Yes [ a 5 ] | — | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | Reactive [ a 6 ] |
| ChucK | 3 | Yes | — | — | — | — | — | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| Claire | 2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes [ a 2 ] | — | — | — | — |
| Clojure | 5 | Yes [ 23 ] [ 24 ] | — | — | Yes | — | Yes [ 25 ] | Yes [ 26 ] | — | — | Library [ 27 ] | — | — | Yes [ 28 ] | — | — | Multiple dispatch , [ 29 ] Agents [ 30 ] |
| Common Lisp | 7 (14) | Library [ 31 ] | Library [ 32 ] | Library [ 33 ] | Yes [ 34 ] | Library [ 35 ] | Yes | Yes | Yes [ 36 ] | Yes | Library [ 37 ] | Yes | Yes [ a 7 ] [ a 2 ] [ 38 ] | Library [ 39 ] | Library [ 40 ] | Library [ 41 ] | Multiple dispatch, meta-OOP system, [ 42 ] Language is extensible via metaprogramming. |
| Curl | 5 | — | — | — | — | — | Yes | — | Yes [ a 3 ] | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Curry | 4 | Yes | Yes | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
| D (version 2.0) [ 43 ] [ 44 ] | 7 | Yes [ a 8 ] | — | — | — | — | Yes | Yes [ 45 ] [ a 3 ] | Yes [ a 3 ] | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Delphi | 3 | — | — | — | — | — | — | — | Yes [ a 3 ] | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| Dylan | 3 | — | — | — | — | — | Yes | — | — | — | — | Yes | Yes [ a 2 ] | — | — | — | — |
| E | 3 | Yes | — | — | — | Yes | — | — | — | — | — | — | Yes [ a 2 ] | — | — | — | — |
| ECMAScript [ 46 ] [ 47 ] ( ActionScript , E4X , JavaScript , JScript ) | 4 (5) | Partial [ a 9 ] [ a 10 ] | — | — | Library [ 48 ] [ 49 ] | — | Yes | — | — | Yes | — | Yes | Yes [ a 11 ] | Library [ 50 ] [ 51 ] | — | — | Reactive, [ a 12 ] [ 52 ] event driven [ a 13 ] [ a 14 ] |
| Erlang | 3 | Yes | — | — | Yes | Yes | Yes | — | — | — | — | — | — | Yes | — | — | — |
| Elixir | 4 | Yes | — | — | — | Yes | Yes | Yes | — | — | — | — | — | Yes | — | — | — |
| Elm | 6 | Yes | — | Yes | Yes | — | Yes ( pure ) [ a 15 ] | — | Yes | — | — | — | — | Yes | — | — | Reactive |
| F# | 7 (8) | Yes [ a 8 ] | — | Library [ a 4 ] | Yes | — | Yes | — | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | Reactive [ a 6 ] |
| Fortran | 4 (5) | Yes | — | — | — | — | Yes [ a 15 ] | — | Yes [ a 16 ] | — | — | — | Yes [ a 2 ] | — | — | — | Array (multi-dimensional) |
| Go | 4 | Yes | — | — | — | — | — | — | — | Yes | — | Yes | — | Yes | — | — | — |
| Haskell | 8 (15) | Yes | Library [ 53 ] | Library [ 54 ] | Yes | Library [ 55 ] | Yes ( lazy ) ( pure ) [ a 15 ] | Yes [ 56 ] | Yes | Yes | Library [ 57 ] | — | Partial [ a 17 ] | Yes | Yes | Library [ 58 ] | Literate, reactive, dependent types (partial) |
| Io | 4 | Yes [ a 8 ] | — | — | — | — | Yes | — | — | Yes | — | — | Yes [ a 11 ] | — | — | — | — |
| J | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| Java | 6 | Yes | Library [ 59 ] | Library [ 60 ] | — | — | Yes | — | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Julia | 9 (17) | Yes | Library [ 61 ] | Library [ 62 ] [ 63 ] | Library [ 64 ] | Yes | Yes ( eager ) | Yes | Yes | Yes | Library [ 65 ] | Yes | Partial [ a 18 ] | Yes | — | Library [ 66 ] [ 67 ] | Multiple dispatch , Array (multi-dimensional); optionally lazy [ 68 ] and reactive (with libraries) |
| Kotlin | 8 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes | Yes | — | — | — |
| LabVIEW | 4 | Yes | — | Yes | — | — | — | — | — | — | — | — | Yes | — | Yes | — | — |
| Lava | 2 | — | — | — | — | — | — | — | — | — | — | — | Yes [ a 2 ] | — | Yes | — | — |
| LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic ( Prolog ), CORBA ) | 9 | Yes | — | — | — | Yes | Yes | Yes | — | Yes | Yes | Yes | Yes [ a 2 ] | — | — | Yes | — |
| Lua | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes [ a 11 ] | — | — | — | — |
| MATLAB | 6 (10) | Toolbox [ 69 ] | Toolbox [ 70 ] | Yes [ 71 ] | — | Toolbox [ 72 ] | — | Yes [ 73 ] | Yes [ 74 ] | — | — | Yes [ 75 ] | Yes [ 76 ] | — | Yes [ 77 ] | — | Array (multi-dimensional) |
| Nemerle | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Object Pascal | 4 | Yes | — | — | — | — | Yes | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| OCaml | 4 | — | — | — | — | — | Yes | — | Yes | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| Oz | 11 | Yes | Yes | Yes | Yes | Yes | Yes | — | — | Yes | Yes | — | Yes [ a 2 ] | Yes | — | Yes | — |
| Perl | 8 (9) | Yes [ 78 ] | — | Yes [ 79 ] | — | — | Yes | Yes | — | Yes | — | Yes [ a 2 ] | Yes [ a 2 ] | Yes | — | — | — |
| PHP [ 80 ] [ 81 ] [ 82 ] | 4 | — | — | — | — | — | Yes | — | — | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Poplog | 3 | — | — | — | — | — | Yes | — | — | Yes | Yes | — | — | — | — | — | — |
| Prograph | 3 | — | — | Yes | — | — | — | — | — | — | — | — | Yes [ a 2 ] | — | Yes | — | — |
| Python | 5 (10) | Library [ 83 ] [ 84 ] | Library [ 85 ] | — | — | Library [ 86 ] | Yes | Yes [ 87 ] [ 88 ] | Yes [ 89 ] [ 90 ] | Yes | Library [ 91 ] | Yes | Yes [ a 2 ] | — | — | — | Structured |
| R | 4 (6) | Library [ 92 ] | — | — | — | Library [ 93 ] | Yes | — | — | Yes | — | Yes | Yes | Yes [ 94 ] | — | — | Array (multi-dimensional) |
| Racket | 10 | Yes [ 95 ] | Yes [ 96 ] | Yes [ 97 ] | — | Yes [ 98 ] | Yes | Yes | — | Yes | Yes | Yes | Yes | — | — | — | Lazy [ 99 ] |
| Raku | 10 | Yes [ 100 ] | Library [ 101 ] | Yes [ 102 ] | — | Library [ 103 ] | Yes | Yes [ 104 ] | Yes [ 105 ] | Yes | — | Yes [ 106 ] | Yes [ 107 ] | Yes | — | — | Multiple dispatch, lazy lists, reactive. |
| ROOP | 3 | — | — | — | — | — | — | — | — | Yes | Yes | — | — | — | — | Yes | — |
| Ruby | 5 | — | — | — | — | — | Yes | Yes | — | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Rust (version 1.0.0-alpha) | 6 | Yes [ a 8 ] | — | — | — | — | Yes | Yes [ 108 ] [ 109 ] | Yes [ 110 ] | Yes | — | — | Yes | — | — | — | Linear, affline, and ownership types |
| Sather | 2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes [ a 2 ] | — | — | — | — |
| Scala [ 111 ] [ 112 ] | 9 | Yes [ a 8 ] | — | Yes [ a 19 ] | Yes | — | Yes | Yes | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | — |
| Simula | 2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes [ a 2 ] | — | — | — | — |
| SISAL | 3 | Yes | — | Yes | — | — | Yes | — | — | — | — | — | — | — | — | — | — |
| Spreadsheets | 2 | — | — | — | — | — | Yes | — | — | — | — | — | — | — | Yes | — | — |
| Swift | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | Block-structured |
| Tcl with Snit extension | 3 | — | — | — | — | — | Yes [ 113 ] | — | — | Yes | — | — | Yes [ a 11 ] [ 114 ] | — | — | — | — |
| Visual Basic .NET | 6 (7) | Yes | — | Library [ a 4 ] | — | — | Yes | — | Yes | Yes | — | Yes | Yes [ a 2 ] | — | — | — | Reactive [ a 6 ] |
| Windows PowerShell | 6 | — | — | — | — | — | Yes | — | Yes | Yes | — | Yes | Yes [ a 2 ] | Yes | — | — | — |
| Wolfram Language & Mathematica | 13 [ 115 ] (14) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes [ 116 ] | — | Yes | Knowledge Based |
See also
Notes
cite-note-rend-mon-71. rendezvous and monitor-like based
cite-note-class-82. class-based
cite-note-temp-meta-203. template metaprogramming
cite-note-tpldf-264. using TPL Dataflow
cite-note-lambda-275. only lambda support (lazy functional programming)
cite-note-rx-286. using Reactive Extensions (Rx)
cite-note-multiple-dispatch2-447. multiple dispatch, method combinations
cite-note-actor-528. actor programming
cite-note-promises-569. promises, native extensions
cite-note-nodejs-cluster-5710. using Node.js' cluster module or child_process.fork method, web workers in the browser, etc.
cite-note-prototype-6011. Prototype-based
cite-note-rxjs-6312. using Reactive Extensions (RxJS)
cite-note-node-events-6513. in Node.js via their events module
cite-note-dom-events-6614. in browsers via their native EventTarget API
cite-note-pure-func-6715. purely functional
cite-note-param-class-6816. parameterized classes
cite-note-immutable-7417. immutable
cite-note-multiple-dispatch1-8318. Uses structs with function polymorphism and multiple dispatch
cite-note-akka-13119. Akka Archived 2013-01-19 at the Wayback Machine
Citations
cite-note-11. ↑ citerefbraggdriskill1994Bragg, S.D.; Driskill, C.G. (20–22 September 1994). "Diagrammatic-graphical programming languages and DoD-STD-2167A". Proceedings of AUTOTESTCON '94 (IEEEXplore). Institute of Electrical and Electronics Engineers (IEEE). pp. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN 978-0-7803-1910-3. S2CID 62509261.
cite-note-220. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
cite-note-321. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
cite-note-422. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
cite-note-523. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
cite-note-624. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
cite-note-925. Thread support
cite-note-1026. Atomics support
cite-note-1127. Memory model
cite-note-1228. Gecode
cite-note-1329. SystemC
cite-note-1430. Boost.Iostreams
cite-note-1531. Boolinq
cite-note-1632. "AraRat" (PDF). Archived from the original (PDF) on 2019-08-19. Retrieved 2019-09-15.
cite-note-1733. OpenMPI
cite-note-1834. Boost.MPI
cite-note-1935. Boost.MPL
cite-note-2136. LC++
cite-note-2237. Castor Archived 2013-01-25 at the Wayback Machine
cite-note-2338. Reflect Library
cite-note-2439. N3534
cite-note-2540. Boost.Spirit
cite-note-2941. Clojure - Concurrent Programming
cite-note-3042. Clojure - core.async
cite-note-3143. Clojure - Functional Programming
cite-note-3244. Clojure - Macros
cite-note-3345. Clojure - core.logic
cite-note-3446. Clojure - Threading Macros Guide
cite-note-3547. Multimethods and Hierarchies
cite-note-3648. Agents and Asynchronous Actions
cite-note-3749. "concurrency". CLiki.
cite-note-3850. [1] constraint programming inside CL through extensions
cite-note-3951. [2] dataflow extension
cite-note-4052. [3] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative
cite-note-4153. [4] MPI, etc via language extensions
cite-note-4254. template metaprogramming using macros (see C++)
cite-note-4355. [5] [6] [7] Prolog implemented as a language extension
cite-note-4556. Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System.
cite-note-4657. implemented by the user via a short macro, example of implementation
cite-note-4758. - Visual programming tool based on Common Lisp
cite-note-4859. [8] rule-based programming extension
cite-note-4960. [9] Archived 2018-04-26 at the Wayback Machine through the Meta Object Protocol
cite-note-5061. D Language Feature Table
cite-note-5162. Phobos std.algorithm
cite-note-5363. D language String Mixins
cite-note-5464. The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
cite-note-5565. Object-Oriented Programming in JavaScript Archived 2019-02-10 at the Wayback Machine gives an overview of object-oriented programming techniques in JavaScript.
cite-note-5866. "React – A JavaScript library for building user interfaces". 2019-04-08.
cite-note-5967. "TNG-Hooks". GitHub. 2019-04-08.
cite-note-6168. "Lodash documentation". 2019-04-08.
cite-note-6269. "mori". 2019-04-08.
cite-note-6470. "TNG-Hooks". GitHub. 2019-04-08.
cite-note-6971. "Prolog embedding". Haskell.org.
cite-note-7072. "Functional Reactive Programming". HaskellWiki.
cite-note-7173. Cloud Haskell
cite-note-7274. "Template Haskell". HaskellWiki.
cite-note-7375. "Logict: A backtracking logic-programming monad". Haskell.org.
cite-note-7576. citerefkollmansbergererwig2006Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules: Embedding Rule Systems in Haskell" (PDF). Oregon State University.
cite-note-7677. https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
cite-note-7778. https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
cite-note-7879. "JuliaOpt/JuMP.jl". GitHub. JuliaOpt. 11 February 2020. Retrieved 12 February 2020.
cite-note-7980. "GitHub - MikeInnes/DataFlow.jl". GitHub. 2019-01-15.
cite-note-8081. "GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives for Julia". GitHub. 2018-12-28.
cite-note-8182. https://github.com/davidanthoff/Query.jl Query almost anything in julia
cite-note-8283. https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia
cite-note-8484. "GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia". GitHub. 2018-12-03.
cite-note-8585. "GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia". GitHub. 2017-08-03.
cite-note-8686. Lazy https://github.com/MikeInnes/Lazy.jl
cite-note-8787. "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
cite-note-8888. "Write Constraints". mathworks.com. Retrieved 21 October 2016.
cite-note-8989. "Getting Started with SimEvents". mathworks.com. Retrieved 21 October 2016.
cite-note-9090. "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
cite-note-9191. "Execute MATLAB expression in text - MATLAB eval". mathworks.com. Retrieved 21 October 2016.
cite-note-9292. "Determine class of object". mathworks.com. Retrieved 21 October 2016.
cite-note-9393. "Class Metadata". mathworks.com. Retrieved 21 October 2016.
cite-note-9494. "Object-Oriented Programming". mathworks.com. Retrieved 21 October 2016.
cite-note-9595. "Simulink". mathworks.com. Retrieved 21 October 2016.
cite-note-9696. interpreter based threads
cite-note-9797. Higher Order Perl
cite-note-9898. PHP Manual, Chapter 17. Functions
cite-note-9999. PHP Manual, Chapter 19. Classes and Objects (PHP 5)
cite-note-100100. PHP Manual, Anonymous functions
cite-note-101101. "Parallel Processing and Multiprocessing in Python". Python Wiki. Retrieved 21 October 2016.
cite-note-102102. "threading — Higher-level threading interface". docs.python.org. Retrieved 21 October 2016.
cite-note-103103. "python-constraint". pypi.python.org. Retrieved 21 October 2016.
cite-note-104104. "DistributedProgramming". Python Wiki. Retrieved 21 October 2016.
cite-note-105105. "Chapter 9. Metaprogramming". chimera.labs.oreilly.com. Archived from the original on 23 October 2016. Retrieved 22 October 2016.
cite-note-106106. "Metaprogramming". readthedocs.io. Retrieved 22 October 2016.
cite-note-107107. "PEP 443 – Single-dispatch generic functions". python.org. Retrieved 22 October 2016.
cite-note-108108. "PEP 484 – Type Hints". python.org. Retrieved 22 October 2016.
cite-note-109109. "PyDatalog". Retrieved 22 October 2016.
cite-note-110110. "Futureverse".
cite-note-111111. "future batchtools".
cite-note-112112. "Magrittr: A Forward Pipe Operator for R". cran.r-project.org\access-date=13 July 2017. 17 November 2020.
cite-note-113113. Racket Guide: Concurrency and Synchronization
cite-note-114114. The Rosette Guide
cite-note-115115. FrTime: A Language for Reactive Programs
cite-note-116116. Racket Guide: Distributed Places
cite-note-117117. Lazy Racket
cite-note-118118. Channels and other mechanisms
cite-note-119119. "Problem Solver module".
cite-note-120120. Feed operator
cite-note-121121. https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module
cite-note-122122. "Meta-programming: What, why and how". 2011-12-14.
cite-note-123123. https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles
cite-note-124124. "Meta-object protocol (MOP)".
cite-note-125125. https://docs.perl6.org/language/classtut Classes and Roles
cite-note-126126. rust-macros"The Rust macros guide". Rust. Retrieved 19 January 2015.
cite-note-127127. rust-plugins"The Rust compiler plugins guide". Rust. Retrieved 19 January 2015.
cite-note-128128. The Rust Reference §6.1.3.1
cite-note-129129. An Overview of the Scala Programming Language
cite-note-130130. Scala Language Specification
cite-note-132131. "Tcl Programming/Introduction". en.wikibooks.org. Retrieved 22 October 2016.
cite-note-133132. "TCLLIB - Tcl Standard Library: snitfaq". sourceforge.net. Retrieved 22 October 2016.
cite-note-134133. Notes for Programming Language Experts, Wolfram Language Documentation.
cite-note-135134. External Programs, Wolfram Language Documentation.
References